import { MessageBox } from "element-ui";
var CreatedOKLodop7766 = null;

//====判断是否需要安装CLodop云打印服务器:====
export function needCLodop() {
  try {
    var ua = navigator.userAgent;
    if (ua.match(/Windows\sPhone/i) != null) return true;
    if (ua.match(/iPhone|iPod/i) != null) return true;
    if (ua.match(/Android/i) != null) return true;
    if (ua.match(/Edge\D?\d+/i) != null) return true;
    if (ua.match(/QQBrowser/i) != null) return false;
    var verTrident = ua.match(/Trident\D?\d+/i);
    var verIE = ua.match(/MSIE\D?\d+/i);
    var verOPR = ua.match(/OPR\D?\d+/i);
    var verFF = ua.match(/Firefox\D?\d+/i);
    var x64 = ua.match(/x64/i);
    if (verTrident == null && verIE == null && x64 !== null) return true;
    else if (verFF !== null) {
      verFF = verFF[0].match(/\d+/);
      if (verFF[0] >= 42) return true;
    } else if (verOPR !== null) {
      verOPR = verOPR[0].match(/\d+/);
      if (verOPR[0] >= 32) return true;
    } else if (verTrident == null && verIE == null) {
      var verChrome = ua.match(/Chrome\D?\d+/i);
      if (verChrome !== null) {
        verChrome = verChrome[0].match(/\d+/);
        if (verChrome[0] >= 42) return true;
      }
    }
    return false;
  } catch (err) {
    return true;
  }
}


//====页面引用CLodop云打印必须的JS文件：====
if (needCLodop()) {
  //让其它电脑的浏览器通过本机打印（适用例子）：
  oscript = document.createElement("script");
  oscript.src = "http://localhost:8000/CLodopfuncs.js";
  var head =
    document.head ||
    document.getElementsByTagName("head")[0] ||
    document.documentElement;
  head.insertBefore(oscript, head.firstChild);
  //让本机浏览器打印(更优先)：
  var oscript = document.createElement("script");
  oscript.src = "http://localhost:8000/CLodopfuncs.js?priority=1";
  var head =
    document.head ||
    document.getElementsByTagName("head")[0] ||
    document.documentElement;
  head.insertBefore(oscript, head.firstChild);
}

//====获取LODOP对象的主过程：====
export function getLodop(oOBJECT, oEMBED) {
  var strHtmInstall =
    "打印控件未安装!点击前往安装进行下载安装,安装后请刷新页面或重新进入。";
  var strHtmUpdate = "";
  var strHtm64_Install =
    "打印控件未安装!点击这里http://www.lodop.net/download.html,安装后请刷新页面或重新进入执行安装,安装后请刷新页面或重新进入。</font>";
  var strHtm64_Update = "打印控件需要升级!点击确认执行升级,升级后请重新进入";
  var strHtmFireFox =
    "（注意：如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】->【扩展】中先卸它）";
  var strHtmChrome =
    "(如果此前正常，仅因浏览器升级或重安装而出问题，需重新执行以上安装）";
  var strCLodopInstall =
    "系统检测到您未安装打印插件，请安装后使用打印功能，如您已安装，仍无法打印，请尝试刷新网页或联系客服解决";
  var strCLodopUpdate =
    "Web打印服务CLodop需升级!点击这里<a href='CLodop_Setup_for_Win32NT.exe' target='_self'>执行升级</a>,升级后请刷新页面";
  var LODOP;
  try {
    var isIE =
      navigator.userAgent.indexOf("MSIE") >= 0 ||
      navigator.userAgent.indexOf("Trident") >= 0;
    if (needCLodop()) {
      try {
        LODOP = getCLodop();
      } catch (err) {}
      if (!LODOP && document.readyState !== "complete") {
        alert("C-Lodop没准备好，请稍后再试！");
        return;
      }
      if (!LODOP) {
        // http://www.lodop.net/download.html
        MessageBox.confirm(
          strCLodopInstall,
          "打印功能需安装打印插件才能正常使用",
          {
            confirmButtonText: "前往安装",
            cancelButtonText: "取消"
          }
        )
          .then(() => {
            window.open("http://www.lodop.net/download.html", top);
          })
          .catch(() => {});
        return;
      } else {
        if (CLODOP.CVERSION < "2.0.3.5") {
          if (isIE) window.alert(strCLodopUpdate);
          else
            MessageBox.confirm(
              strCLodopUpdate,
              "打印功能需安装打印插件才能正常使用",
              {
                confirmButtonText: "前往更新",
                cancelButtonText: "取消"
              }
            )
              .then(() => {
                window.open("http://www.lodop.net/download.html", top);
              })
              .catch(() => {});
        }
        if (oEMBED && oEMBED.parentNode) oEMBED.parentNode.removeChild(oEMBED); //清理旧版无效元素
        if (oOBJECT && oOBJECT.parentNode)
          oOBJECT.parentNode.removeChild(oOBJECT);
      }
    } else {
      var is64IE = isIE && navigator.userAgent.indexOf("x64") >= 0;
      //=====如果页面有Lodop就直接使用，没有则新建:==========
      if (oOBJECT != undefined || oEMBED != undefined) {
        if (isIE) LODOP = oOBJECT;
        else LODOP = oEMBED;
      } else if (CreatedOKLodop7766 == null) {
        LODOP = document.createElement("object");
        LODOP.setAttribute("width", 0);
        LODOP.setAttribute("height", 0);
        LODOP.setAttribute(
          "style",
          "position:absolute;left:0px;top:-100px;width:0px;height:0px;"
        );
        if (isIE)
          LODOP.setAttribute(
            "classid",
            "clsid:2105C259-1E0C-4534-8141-A753534CB4CA"
          );
        else LODOP.setAttribute("type", "application/x-print-lodop");
        document.documentElement.appendChild(LODOP);
        CreatedOKLodop7766 = LODOP;
      } else LODOP = CreatedOKLodop7766;
      //=====Lodop插件未安装时提示下载地址:==========
      if (LODOP == null || typeof LODOP.VERSION == "undefined") {
        if (navigator.userAgent.indexOf("Chrome") >= 0)
          MessageBox.confirm(
            strHtmChrome,
            "打印功能需安装打印插件才能正常使用",
            {
              confirmButtonText: "前往安装",
              cancelButtonText: "取消"
            }
          )
            .then(() => {
              window.open("http://www.lodop.net/download.html", top);
            })
            .catch(() => {});
        if (navigator.userAgent.indexOf("Firefox") >= 0)
          MessageBox.confirm(
            strHtmFireFox,
            "打印功能需安装打印插件才能正常使用",
            {
              confirmButtonText: "确定",
              cancelButtonText: "取消"
            }
          )
            .then(() => {
              window.open("http://www.lodop.net/download.html", top);
            })
            .catch(() => {});
        if (is64IE) window.alert(strHtm64_Install);
        else if (isIE) window.alert(strHtmInstall);
        else
          MessageBox.confirm(
            strHtmInstall,
            "打印功能需安装打印插件才能正常使用",
            {
              confirmButtonText: "前往安装",
              cancelButtonText: "取消"
            }
          )
            .then(() => {
              window.open("http://www.lodop.net/download.html", top);
            })
            .catch(() => {});
        if (!!LODOP) {
          LODOP.SET_LICENSES(
            "",
            "77B64FF8FBEFC6367066587376828C880FD",
            "C94CEE276DB2187AE6B65D56B3FC2848",
            ""
          );
        }
        return LODOP;
      }
    }
    if (LODOP.VERSION < "6.2.0.3") {
      if (needCLodop())
        MessageBox.confirm(
          strCLodopUpdate,
          "打印功能需安装打印插件才能正常使用",
          {
            confirmButtonText: "前往更新",
            cancelButtonText: "取消"
          }
        )
          .then(() => {
            window.open("http://www.lodop.net/download.html", top);
          })
          .catch(() => {});
      else if (is64IE) window.alert(strHtm64_Update);
      else if (isIE) window.alert(strHtm64_Update);
      else
        MessageBox.confirm(strHtmUpdate, "打印功能需安装打印插件才能正常使用", {
          confirmButtonText: "前往更新",
          cancelButtonText: "取消"
        })
          .then(() => {
            window.open("http://www.lodop.net/download.html", top);
          })
          .catch(() => {});
      if (!!LODOP) {
        LODOP.SET_LICENSES(
          "",
          "77B64FF8FBEFC6367066587376828C880FD",
          "C94CEE276DB2187AE6B65D56B3FC2848",
          ""
        );
      }
      return LODOP;
    }
    //===如下空白位置适合调用统一功能(如注册语句、语言选择等):===

    //===========================================================
    if (!!LODOP) {
      LODOP.SET_LICENSES("", "EEFB6251A85A4680B4D5ED7D8AF1E037E9D", "", "");
    }
    return LODOP;
  } catch (err) {
    alert("getLodop出错:" + err);
  }
}
// EEFB6251A85A4680B4D5ED7D8AF1E037E9D
